{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "c15b8400",
   "metadata": {},
   "source": [
    "# Motion detection via 3D convolution\n",
    "\n",
    "In section 10.4.1, we discussed how to detect motion in a sequence of consecutive images via 3D convolution. This notebook contains the fully functional code for the same."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "477568f3",
   "metadata": {},
   "outputs": [],
   "source": [
    "import cv2\n",
    "import numpy as np\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.image as mpimg\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "eb910c40",
   "metadata": {},
   "outputs": [],
   "source": [
    "width = 320\n",
    "height = 320\n",
    "num_frames = 3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "37cb5813",
   "metadata": {},
   "outputs": [],
   "source": [
    "def generate_img(centre_x, centre_y, radius):\n",
    "    \"\"\"\n",
    "    A helper function to help generate our artificial generated image\n",
    "    \"\"\"\n",
    "    img = np.ones([width, height], dtype=np.uint8) * 255\n",
    "    cv2.circle(img, (centre_x, centre_x), radius, (0, 0, 0), -1)\n",
    "    return img\n",
    "\n",
    "def tensor_to_img(x):\n",
    "    \"\"\"\n",
    "    Takes a tensor, does min-max normalization to scale the tensor to a value between 0 and 255\n",
    "    and returns the resulting numpy array\n",
    "    \"\"\"\n",
    "    x_norm = ((x - x.min()) / (x.max() - x.min())) * 255\n",
    "    return x_norm.to(torch.uint8).numpy()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6c952be6",
   "metadata": {},
   "source": [
    "For the purpose of demonstration, let us artificially generate a sequence of images that simulates the motion of a ball. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "1b4a8d4b",
   "metadata": {},
   "outputs": [],
   "source": [
    "center_x, center_y = 150, 150\n",
    "motion_x, motion_y = 30, 30\n",
    "radius = 40\n",
    "imgs = []\n",
    "\n",
    "for i in range(5):\n",
    "    circle_img = generate_img(center_x + i * motion_x, center_y + i * motion_y, radius)\n",
    "    imgs.append(circle_img)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "ee1ad13e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAG6CAYAAAAWBAG9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8GearUAAAUn0lEQVR4nO3da2zVhf3H8W9bVguWEopsESUyHGwoF4FNg47M+GA4dQ53ybJsQ3aBANWFMZzBZVFnfGBULpsJ6DBTRI1mD5gLjAfLtsSYCYMIkRkENyAIMzWiLXcpp/8Hxmb8YV+gPe2vl9crMZHD75x+NOS8+Z3fOW1Fa2trawDA/1BZ9AAAujehACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUdJqnnnoqKioqYtOmTUVPiYiII0eOxH333Rd/+9vfznrsiBEjoqKi4qz/PPXUUx3e9eSTT8aYMWOipqYmRo0aFb/5zW86/JhQTv2KHgBd5ciRI3H//fdHRMT111+fHrt06dI4dOhQ26/XrVsXzz//fCxZsiQuuuiittuvvfbaDm16/PHHY86cOfGNb3wjFixYEC+//HL85Cc/iSNHjsTdd9/doceGchEKOIPp06ef8ut33nknnn/++Zg+fXqMGDGiLF/j6NGj8Ytf/CJuvvnm+P3vfx8REbNmzYpSqRQPPPBAzJ49OwYPHlyWrwUd4aUnutTMmTOjtrY29u3bF9OnT4/a2toYOnRoLFy4ME6ePNl23O7du6OioiIeeeSRWLJkSVx22WXRv3//+NKXvhTbtm075TGvv/76M54hzJw5s+1Jfffu3TF06NCIiLj//vvbXjq67777Ous/9az++te/xnvvvRfz5s075faGhoY4fPhwrF27tqBlcCpnFHS5kydPxrRp0+Kaa66JRx55JP785z/Ho48+GpdffnnMnTv3lGNXrVoVBw8ejIaGhjh27FgsW7Ysbrjhhnj99dfjU5/61Dl/zaFDh8by5ctj7ty5cdttt8XXv/71iIgYP358Wf6b3n///VNC978MGDAgBgwYEBERr732WkREfP7znz/lmMmTJ0dlZWW89tpr8b3vfa8s+6AjhIIud+zYsfj2t78dv/zlLyMiYs6cOTFp0qR48sknTwvFW2+9FTt37oxLLrkkIiJuvPHGuOaaa+Khhx6KxYsXn/PXvPDCC+Ob3/xmzJ07N8aPH1/2J+CJEyfGnj17znrcvffe23YW85///Ceqqqrik5/85CnHVFdXx5AhQ2L//v1l3QjtJRQUYs6cOaf8eurUqfHMM8+cdtz06dPbIhERcfXVV8c111wT69atO69QdLZnn302jh49etbjRo4c2fbvR48ejerq6jMeV1NTc06PB11BKOhyNTU1bdcLPjZ48OB4//33Tzt21KhRp902evToePHFFzttX3tcd911532f/v37x4cffnjG3zt27Fj079+/o7OgLISCLldVVVXWx6uoqIgz/UTfc7lmUC7vvvvuOX292traqK2tjYiIiy++OE6ePBmNjY2nvPz04YcfxnvvvRfDhg3rtL1wPrzriW5t586dp922Y8eOU96iOnjw4Pjggw9OO+7/XzOoqKgo+76PfeELX4iLL774rP888sgjbfe56qqrIiJO+0Dipk2bolQqtf0+FM0ZBd3amjVrYt++fW3XKTZu3BgbNmyI+fPntx1z+eWXx7p16+Ldd99te0lr69at8corr8Tw4cPbjvv43UZnikpHtecaxQ033BD19fWxfPnyuOmmm9puX758eQwYMCBuvvnmsu+E9hAKurXPfOYz8cUvfjHmzp0bx48fj6VLl8aQIUPi5z//edsxP/zhD2Px4sUxbdq0+NGPfhSNjY2xYsWKuPLKK6O5ubntuP79+8cVV1wRL7zwQowePTrq6+tj7NixMXbs2A7vbO81igceeCAaGhriW9/6VkybNi1efvnlWL16dTz44INRX1/f4V1QDl56olubMWNG3HnnnfHYY4/Fgw8+GFdeeWX85S9/iYsvvrjtmDFjxsSqVauiqakpFixYEC+99FI888wzMWnSpNMeb+XKlXHJJZfET3/60/jOd77T9onoosybNy+eeOKJeP3116OhoSFeeeWVWLJkSSxatKjQXfDfKlrPdBUQCrZ79+749Kc/HQ8//HAsXLiw6DnQpzmjACAlFACkhAKAlGsUAKScUQCQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEj1a+8dS6VS7N+/PwYOHBgVFRXl3ARAJ2ttbY2DBw/GsGHDorIyP2dodyj2798fw4cPb+/dAegG9u7dG5deeml6TLtDMXDgwLYvUldX196HAaAAzc3NMXz48Lbn8ky7Q/Hxy011dXVCAdBDnculAxezAUgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRT0Kffcc0/cddddRc+AHqVf0QOgXGbOnBmNjY3pMdu2bYtSqRT//Oc/0+Pq6+tj9erV5ZwHPZZQ0CNt3Lgx1q5de8pta9asiaampnO6/759+9Lfr62tjXvvvfeU26ZNmxbXXnvt+Q2FXkAo6DHWr18fLS0tERGxdu3aWLFiRad9rUOHDsWvfvWrU27bu3dvHDhwICIiqqqq4itf+UqnfX3oTipaW1tb23PH5ubmGDRoUDQ1NUVdXV25d0FERJw4cSLefvvtiIgYN25cHD58uOBFH6mpqYk33ngjIiIuvfTS+MQnPlHwIjg/5/Mc7oyCbunkyZNRKpVi+/btMX78+KLnnObYsWMxcuTIiIjYvHlzjBs3LiorK6OqqqrgZVB+3vVEt3T33XdHdXV1t4zE/zd58uSorq6O+fPnFz0FOoWXnuhWxowZE42NjXHkyJE4duxY0XPOywUXXBAXXnhh1NfXx86dO4ueA6nzeQ53RkG3UCqVYsqU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Sf3jH/+IsWPHRr9+/ZxF0GOcz3O4P9V0Sx8/6V5xxRXx5ptvRkTEpEmT4vDhwwUv+0hNTU1s3bo1Ij76EF1PfKkMzpVQ0K1VV1e3va302WefbbvQvX79+li5cmWXbpkxY0bceuutEfHRBWtvd6WvEAp6jK997Wtt/z5s2LDTfr70ihUrorm5uSxfq7a2NubNm3fKbbfccktMnTq1LI8PPYlQ0CNNmTIlpkyZcspte/fujXfeeSe9344dO6JUKsXnPve59LiLLrooHnrooQ7vhN5AKOg1nnvuubMes2jRojh+/HgsXry4CxZB7+BdTwB9kA/cAVA2QgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASPVr7x1bW1sjIqK5ublsYwDoGh8/d3/8XJ5pdygOHjwYERHDhw9v70MAULCDBw/GoEGD0mMqWs8lJ2dQKpVi//79MXDgwKioqGjXQACK0draGgcPHoxhw4ZFZWV+FaLdoQCgb3AxG4CUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFA6v8A03LIIX5QHOAAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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AKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFFKSlpSXee++9omfAcQkFdINyuXzcPxMmTIgXXnjhuMdB0YQCutjevXvjIx/5yHH/tLS0xLRp04573E9+8pOivyT6uVL5FP/J0tbWFjU1NdHa2hrV1dVdvQv6jMsuuyxeeumlzsuHDx+OnTt3dtn1V1dXx8iRI4/62HPPPRe1tbVddhv0PydzH17VQ5ugYuzYsSNuuOGGzstPP/10tLe3d9vttbW1RVtb21Efu/baa2PIkCEREfGlL30pbrnllm67fRAKOEGPPfZYPP3007Fnz57YsGFDoVv+/Oc/d/739u3bo6OjIwYNGhSLFy8ucBWVSijgOJ544ok4cOBArFmzJn73u98VPecYL774Yrz44osxePDg+OxnPxsRETNmzIgRI0YUvIxK4RwFfIjDhw/H9u3bIyKioaEh9uzZU/Cik7Nhw4aor6+P6urqGDVqVNFz6IVO5j7cq57gA8rlcuzcuTPGjRsX48aN63ORiIi4/PLLY9y4cbFkyRI/q8FpEwr4gCeffDLGjh1b9IwusWrVqpgxY0bRM+jjnKOA/9XY2BhNTU1x6NChoqd0qY0bN8aoUaOiVCpFc3NzVFX5tufkeEQBEXHNNddEU1NTtLS0dOtLXYvw3nvvRUtLS+zduzemTZsWzc3NRU+ijxEK+r2bbropHn/8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iIEDB/bobdP/CAWcpFKpFEOGDOm8/Pvf/z4OHjzYeXnfvn1x0UUXddntXX/99XHzzTcf9bG6ujqBoMcIBZymD/6U87vvvhvr1q077uc1NjbGrbfe2vmy3P+mvr4+Jk6ceFob4XQIBXSxwYMHx5VXXnnc47Zs2RKzZ8/2k9L0eqVyuVw+lU9sa2uLmpqaaG1tjerq6q7eBUA3Opn7cK96AiAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQCpqlP9xHK5HBERbW1tXTYGgJ7x/n33+/flmVMORXt7e0RE1NXVnepVAFCw9vb2qKmpSY8plU8kJx/iyJEjsWvXrhgxYkSUSqVTGghAMcrlcrS3t8c555wTAwbkZyFOORQA9A9OZgOQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASP0P2OFkOSzuDjsAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAG6CAYAAAAWBAG9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8GearUAAAUVUlEQVR4nO3df6zVBf3H8fe53Nu52AWGweCSLEJwUxQVkmtRSW4OpnO7Oi0rSivbhGZJU2EuRforJwguFq4hIWoul9oPhm3SUrJm/lgjtVmaXvwBJCHdew3oAp7vH+b9RugbuJ57P/fe83hs/HHu/dxzXpc/znPnfM45t1SpVCoBAO+hrugBAPRvQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKOg1a9eujVKpFE8++WTRUyIiYvfu3XHjjTfGww8/fNhjJ0yYEKVS6bD/1q5d2+M9r7zySixZsiRmzJgRI0eOjFGjRsWsWbNi48aNPb5O6A31RQ+AvrJ79+5YsmRJRETMmjUrPXbFihXx5ptvdl/esGFD3HPPPbF8+fIYNWpU99c/8YlP9HjPz3/+87jpppuitbU1Lr300ti/f3+sW7cuzjnnnFizZk185Stf6fF1QzUJBbyL1tbWgy5v37497rnnnmhtbY0JEyZU5TY+85nPxMsvv3xQeK644oo47bTT4oYbbhAK+g1PPdGnLrvssmhqaorXXnstWltbo6mpKUaPHh1XX311HDhwoPu4tra2KJVKsXTp0li+fHl85CMfiaFDh8ZZZ50VzzzzzEHXOWvWrHd9hHDZZZd136m3tbXF6NGjIyJiyZIl3U8d3Xjjjb31qx7WlClTDopERES5XI5zzz03Xn311ejs7CxoGRzMIwr63IEDB2L27NnR0tISS5cujY0bN8ayZcvi+OOPj3nz5h107Lp166KzszO+8Y1vxN69e+PWW2+Ns88+O55++ukYM2bMEd/m6NGjY9WqVTFv3ry44IIL4sILL4yIiKlTp1bld9q1a9dBoXsvxxxzTBxzzDHpMdu3bz+i46CvCAV9bu/evfG5z30urr/++oh4++mWadOmxe23335IKF544YV4/vnn48Mf/nBERMyZMydaWlripptuiltuueWIb/ODH/xgXHTRRTFv3ryYOnVqzJ07t3q/UEScfvrpsWXLlsMet3jx4vRRzAsvvBD3339/XHzxxTFkyJAqLoSeEwoKccUVVxx0+VOf+lTceeedhxzX2traHYmIiBkzZkRLS0ts2LDhqELR2+6+++7Ys2fPYY+bOHHie35v9+7dcfHFF8fQoUPje9/7XjXnwfsiFPS5xsbG7vMF7xg5cmTs2rXrkGMnT558yNdOOOGEuPfee3ttX0/MnDnzff38gQMH4pJLLok///nP8eCDD8a4ceOqtAzeP6Ggz1X7KZVSqRTv9hd9j+ScQbXs2LHjiG6vqakpmpqaDvn617/+9Vi/fn3cfffdcfbZZ/fGROgxoaBfe/755w/52l//+teDXqI6cuTIePHFFw857n/PGZRKparve8cZZ5zR43MU11xzTfzoRz+KFStWxOc///leWgg9JxT0az/72c/itdde6z5P8fjjj8cf/vCHuOqqq7qPOf7442PDhg2xY8eO7qe0Nm/eHL/73e9i/Pjx3ce98yqif/7zn1Xf2dNzFDfffHMsXbo0rrvuuvjWt75V9V1QDUJBvzZp0qT45Cc/GfPmzYt///vfsWLFivjQhz4U1157bfcxX/3qV+OWW26J2bNnx9e+9rV4/fXX47bbbospU6ZER0dH93FDhw6Nk046KX7yk5/ECSecEMcee2ycfPLJcfLJJ7/vnT05R/HAAw/EtddeG5MnT44TTzwx7rrrroO+f8455xzVS4ChtwgF/dqXv/zlqKurixUrVsTrr78eM2bMiJUrV0Zzc3P3MSeeeGKsW7cubrjhhvj2t78dJ510Utx5553x4x//+JDPdVq9enVceeWVsWDBgujq6orFixdXJRQ9sXnz5oh4++m1L33pS4d8/ze/+Y1Q0C+UKu92FhAK1tbWFh/96Efj5ptvjquvvrroOVDTfIQHACmhACAlFACknKMAIOURBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgFR9T3/wrbfeiq1bt8awYcOiVCpVcxMAvaxSqURnZ2eMGzcu6uryxww9DsXWrVtj/PjxPf1xAPqBV155JY477rj0mB6HYtiwYd03Mnz48J5eDQAF6OjoiPHjx3ffl2d6HIp3nm4aPny4UAAMUEdy6sDJbABSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCqhxnZ2dsWrVqqJn0I/VFz0A6D3bt2+PF198MT1m27Zt8c1vfjNOPfXUw17ftGnTorGxsVrzGCCEAgaRnTt3HnT5jjvuiEWLFh3Rz86cOfOwxzz22GMxadKk7st1dXUxcuTIoxvJgCMUMMBVKpWIiNizZ0+MGjWqV2/rzDPPPOjyuHHj4tVXX+2+XCqVevX2KYZzFDCALVy4MMrlcpTL5RgxYkSf3/7WrVu7b79cLsemTZv6fAO9zyMKGIDOOOOM2LFjR+za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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAG6CAYAAAAWBAG9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8GearUAAAUk0lEQVR4nO3df4zXBR3H8ff3uNPDgJuCQ0kGItH4kawwibCprPzBbDsYZg0zp2uDHEsbOWeZP/5g/iDAxQKbmklItkVqk2zSj+WPIeGKtGGiBMmPCzr5cXrQAfftD/MWom/huLvPcd/HY2Pzvnzuvi8Yfp/3+X7uvlcql8vlAIAPUFX0AAC6N6EAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRR0moceeihKpVKsWbOm6CkREdHc3By33XZb/OEPf/jQY4cOHRqlUulDfz300EPt3rN379649tprY8yYMVFXVxd9+vSJsWPHxr333hv79+9v98eFjlZd9ADoKs3NzXH77bdHRMQFF1yQHrtgwYJ466232t5esWJFLFu2LObPnx8DBgxou/2zn/1su/fs3bs3/va3v8XkyZNj6NChUVVVFc8//3zccMMN8cILL8QjjzzS7o8NHUko4H3U19cf8nZDQ0MsW7Ys6uvrY+jQoR1yH6ecckqsWrXqkNtmzJgRdXV1sXDhwpg3b16cdtppHXJfcCw89USXuvrqq6NPnz6xZcuWqK+vjz59+sSpp54as2fPjoMHD7Ydt3HjxiiVSjF37tyYP39+DBkyJHr37h3nn39+vPzyy4d8zAsuuOB9zxCuvvrqtgf1jRs3xqmnnhoREbfffnvbU0e33XZbZ/1R2+3dzbt27Sp2CPyPMwq63MGDB+Piiy+O8ePHx9y5c2PlypXx/e9/P84666yYOXPmIcc+/PDD0dTUFNddd13s27cv7r333pg0aVK89NJLMXDgwCO+z1NPPTUWLVoUM2fOjClTpsTUqVMjIuLss8/ukD/Tzp07DwndBznppJPipJNOOuS2lpaW2LNnT+zduzfWrFkTc+fOjSFDhsTw4cM7ZBscK6Ggy+3bty+uuOKKuOWWWyLinadbPvWpT8UDDzxwWChee+21WL9+fXz0ox+NiIhLLrkkxo8fH3fddVfMmzfviO/zIx/5SEybNi1mzpwZZ599dlx55ZUd9weKiE9+8pOxadOmDz3u1ltvPewsZvny5fGVr3yl7e1zzjknHnzwwaiu9r8n3YN/iRRixowZh7z9uc99LpYsWXLYcfX19W2RiIg499xzY/z48bFixYqjCkVnW7p0aezdu/dDjxs2bNhht1144YXx9NNPx65du+K3v/1trF27Nt5+++3OmAntIhR0udra2rbrBe86+eSTY+fOnYcd+7GPfeyw20aMGBE///nPO21fe0ycOLHd7ztw4MC2p9GmTZsWc+bMiS984Quxfv16F7PpFlzMpsv16tWrQz9eqVR639uP5JpBR9mxY0c0NDR86K///5LbDzJt2rR466234vHHH++C5fDhnFHQra1fv/6w21599dVDvkT15JNPjg0bNhx23HuvGXxQUDrCpz/96XZfo3ivd5/C2r17d0dMg2MmFHRrjz32WGzZsqXtOsXq1avjhRdeiOuvv77tmLPOOitWrFgRO3bsaHtKa+3atfHcc8/F4MGD245796uNOuPLTttzjeLf//539O/f/7CA3X///RHxzkVt6A6Egm5t+PDhcd5558XMmTPjP//5TyxYsCD69+8fN954Y9sx11xzTcybNy8uvvjiuPbaa2P79u2xePHiGD16dOzZs6ftuN69e8eoUaPi0UcfjREjRsQpp5wSY8aMiTFjxhzzzvZco/jpT38aixcvjvr6+hg2bFg0NTXFb37zm3j66afji1/8YkyaNOmYd0FHEAq6tauuuiqqqqpiwYIFsX379jj33HNj4cKFcfrpp7cdM3LkyHj44Yfje9/7XnzrW9+KUaNGxZIlS+KRRx457HWd7r///pg1a1bccMMN0dLSErfeemuHhKI9zjvvvHj++edj2bJl8a9//Suqq6vj4x//eMybNy9mzZpVyCZ4P6VyuVwuegS818aNG+PMM8+Me+65J2bPnl30HKhovuoJgJRQAJASCgBSrlEAkHJGAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAIFXd3ndsbW2NrVu3Rt++faNUKnXkJgA6Wblcjqamphg0aFBUVeXnDO0OxdatW2Pw4MHtfXcAuoE33ngjzjjjjPSYdoeib9++bXfSr1+/9n4YAAqwZ8+eGDx4cNtjeabdoXj36aZ+/foJBcBx6kguHbiYDUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQC6jUWLFsU3v/nNomfwHtVFDwAqw8033xybN29Oj1m7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/fTT449//GMMGjQoGhsbo53fWtWj9O/fPx577LE444wzip7SLQgFEDU1NbFjx44YMGBANDY2Fj2nUFVVVbFt27aoqakpekq34aknoE1DQ0Occ845Rc8oTP/+/WPfvn0i8R5CAbSprq6OX/3qVxX5c7bHjRsXf/nLX0TifQgFcIjTTjstbrrppor6ktDLLrssFi5c6JrEBxAK4DBjxoyJr33tazFjxoyip3S6KVOmxDe+8Q1f+ZVwMRt4X2PHjo1vf/vbsXnz5oiIWLFiRbS2tha8quNccsklUV1dHbNmzar475P4MF5mHDgiI0eOjNdffz32799f9JRjUiqVYsiQIfHSSy9V9MtyeJlxoMOtW7cuRowYETU1Ncflj1StqqqKmpqa6NevX/zjH/+o6EgcLaEAjtjLL78cLS0tMWfOnKKnHLXLL788WlpaKvalwo+Fp56Ao7Zv375obm6OhoaGGD16dNFzUk888URMnDgxTjjhBGcR/+doHsNdzAaOWm1tbdTW1kbfvn1j1apVERExefLkePPNNwte9o6qqqp49tlno6qqKkaNGhV9+/YtetJxTSiAdqupqYnx48dHRMT8+fOjubk5IiLWrFkTDzzwQJduueiii2LKlCkR8c4F6wkTJnTp/fdkQgF0iKuuuqrtv1evXh0HDx485Pcff/zx2LlzZ4fcV01NzWHfPT558uS4/PLLO+TjcyjXKIAuccUVV8Srr76aHtPQ0BDNzc0xbNiw9Lg+ffrEM88805HzKo5rFEC38+ijj37oMXPmzIm//vWv8bOf/awLFnGknFEAVCDfcAdAhxEKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFAqrq971gulyMiYs+ePR02BoCu8e5j97uP5Zl2h6KpqSkiIgYPHtzeDwFAwZqamqKuri49plQ+kpy8j9bW1ti6dWv07ds3SqVSuwYCUIxyuRxNTU0xaNCgqKrKr0K0OxQAVAYXswFICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApP4LwPbWJFkRbkwAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAG6CAYAAAAWBAG9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8GearUAAAUI0lEQVR4nO3df6zVdf3A8de5IEO8XERxIMi85m/vBadLcSJlbGH0Q8hylqE5atOrw6LU8tfSmhNTRJsLydoM8AeuVv6ILWuULVxYBiZuLkMvYxJGcL33yg8RON8/GnffG/QCr+eez7mXx2Nj4xw+5/N+XdjOk8/5nHM+pXK5XA4A+B/qih4AgNomFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEgl7z8MMPR6lUir/85S9FjxIREVu3bo3bbrstfv/73+9328bGxiiVSvv99fDDD1dsvj/+8Y9d+/33v/9dsf3CBzWw6AGgWrZu3Rq33357REScf/756bb33XdfvPPOO123ly5dGo899ljMmzcvRowY0XX/ueeeW5HZdu/eHbNmzYrDDjsstmzZUpF9QqUIBezD9OnTu93esGFDPPbYYzF9+vRobGys+Ho/+tGPYt26dfHVr3417r///orvHz4ILz1RVVdccUXU19fHm2++GdOnT4/6+vo46qij4rrrrotdu3Z1bdfa2hqlUinuueeemDdvXhx77LFx6KGHxkc/+tFYvXp1t32ef/75+zxCuOKKK7qe1FtbW+Ooo46KiIjbb7+96yWe2267rbd+1AO2efPmuOWWW+K73/1uHH744UWPA3txREHV7dq1Ky644IKYMGFC3HPPPfHb3/425s6dG8cff3y0tLR023bhwoXR2dkZ11xzTWzfvj3uv//+mDx5crz88ssxcuTIA17zqKOOivnz50dLS0t89rOfjYsuuigiIsaPH1+Rn6mtra1b6P6XIUOGxJAhQ7rdd+utt8aoUaPiyiuvjO9973sVmQcqSSiouu3bt8cll1wSt956a0REXHXVVXHmmWfGT37yk71C8Y9//CNee+21GDNmTEREfOITn4gJEybEXXfdFffee+8Br3nYYYfF5z//+WhpaYnx48fHjBkzKvcDRcQZZ5wRa9eu3e923/nOd7odxfztb3+LBQsWxNKlS2PAgAEVnQkqRSgoxFVXXdXt9qRJk2LRokV7bTd9+vSuSEREnH322TFhwoRYunTp+wpFb3vkkUdi27Zt+93uQx/6ULfb1157bUydOjWmTJnSW6PBByYUVN3gwYO7zhfsMXz48Ghra9tr2xNPPHGv+0466aR44oknem2+npg4ceL7fsySJUvi+eef3+ucC9QaoaDqKv0SS6lUin1d0fdAzhlUysaNGw9ovfr6+qivr4+IiOuvvz4uvvjiGDRoULS2tkZExNtvvx0REevWrYsdO3bE6NGje21mOFBCQU177bXX9rrv73//e7e3qA4fPjxef/31vbb773MGpVKp4vPtcdZZZ73vcxTr1q2LRx99NB599NG9tjvzzDPj9NNPj1WrVlV6VHjfhIKa9stf/jLefPPNrvMUL7zwQqxYsSK+/vWvd21z/PHHx9KlS2Pjxo1dL2m99NJLsXz58hg7dmzXdnvebbTnf+2V1JNzFL/4xS/2+vPHH388lixZEgsXLoxjjjmmojNCTwkFNe2EE06I8847L1paWuLdd9+N++67L4488si44YYburaZOXNm3HvvvXHBBRfEV77ylfjXv/4VDz74YDQ1NUVHR0fXdoceemicdtppsWTJkjjppJPiiCOOiObm5mhubv7Ac/bkHMV/f6gvIrqOIKZOndrtE+BQJB+4o6ZdfvnlMWvWrHjggQfijjvuiKampli2bFkcffTRXduceuqpsXDhwmhvb49vfOMb8dRTT8WiRYvizDPP3Gt/P/7xj2PMmDExe/bs+OIXvxg/+9nPqvnjQJ9UKu/rLCAUrLW1NY477ri4++6747rrrit6HDioOaIAICUUAKSEAoCUcxQApBxRAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASA3s6QN3794d69evj6FDh0apVKrkTAD0snK5HJ2dnTF69Oioq8uPGXocivXr18fYsWN7+nAAasC6devimGOOSbfpcSiGDh3atUhDQ0NPdwNAATo6OmLs2LFdz+WZHodiz8tNDQ0NQgHQRx3IqQMnswFICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAAkBIKAFJCAUBKKABICQUAKaEAICUUAKSEAoCUUACQEgoAUkIBQEooAEgJBQApoQAgJRQApIQCgJRQAJASCgBSQgFASigASAkFACmhACAlFACkhAKAlFAA7MP2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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Let us take a look at the images\n",
    "for i, img in enumerate(imgs):\n",
    "    fig = plt.figure() \n",
    "    fig.suptitle(f\"Input T={i}\")\n",
    "    plt.imshow(img.astype(np.float32) / 255.0, cmap=\"gray\")\n",
    "    plt.xticks([])\n",
    "    plt.yticks([])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "09bcb135",
   "metadata": {},
   "source": [
    "Let us convert the list of images to a tensor of shape B x C x T x H x W, where B is batch size, C is number of channels, T is number of time steps (a.k.a length of image sequence), H is height and W is width. In our case, B = 1 and C = 1 because we are dealing a single sequence of grayscale images. T = 5 since we are looking at 5 consecutive images. H and W are both 320."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "6edcab8e",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/tx/pqtg9xkd5156pd7hbgdr_4140000gn/T/ipykernel_82084/2061045849.py:1: UserWarning: Creating a tensor from a list of numpy.ndarrays is extremely slow. Please consider converting the list to a single numpy.ndarray with numpy.array() before converting to a tensor. (Triggered internally at /Users/runner/work/pytorch/pytorch/pytorch/torch/csrc/utils/tensor_new.cpp:233.)\n",
      "  img = torch.tensor([imgs], dtype=torch.float32) # [C, T, H, W] tensor where num channels (C) = 1\n"
     ]
    }
   ],
   "source": [
    "img = torch.tensor([imgs], dtype=torch.float32) # [C, T, H, W] tensor where num channels (C) = 1\n",
    "img_batch = img.unsqueeze(0) # [B, C, T, H, W] tensor where batch size (B) = 1"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d4ef4ab7",
   "metadata": {},
   "source": [
    "Now, let us define the motion detection kernel. It is essentially two 2D smoothing kernels (with inverted weights) stacked along the T dimension, i.e.\n",
    "\n",
    "$$\n",
    "\\begin{bmatrix}\n",
    "\\begin{bmatrix}\n",
    "\\frac{-1}{9} & \\frac{-1}{9} & \\frac{-1}{9}\\\\\n",
    "\\frac{-1}{9} & \\frac{-1}{9} & \\frac{-1}{9}\\\\\n",
    "\\frac{-1}{9} & \\frac{-1}{9} & \\frac{-1}{9}\\\\\n",
    "\\end{bmatrix}\n",
    "\\begin{bmatrix}\n",
    "\\frac{1}{9} & \\frac{1}{9} & \\frac{1}{9}\\\\\n",
    "\\frac{1}{9} & \\frac{1}{9} & \\frac{1}{9}\\\\\n",
    "\\frac{1}{9} & \\frac{1}{9} & \\frac{1}{9}\\\\\n",
    "\\end{bmatrix}\n",
    "\\end{bmatrix}\n",
    "$$\n",
    "\n",
    "When there is motion, we expect pixels in the same spatial location in subsequent frames to have different values. Hence multiplying with the above kernel would result in high values (positive or negative depending on direction of motion) whenever there is motion in the input image."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "9b8bfb01",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Kernel shape torch.Size([1, 1, 2, 3, 3])\n",
      "Kernel: tensor([[[[[-1., -1., -1.],\n",
      "           [-1., -1., -1.],\n",
      "           [-1., -1., -1.]],\n",
      "\n",
      "          [[ 1.,  1.,  1.],\n",
      "           [ 1.,  1.,  1.],\n",
      "           [ 1.,  1.,  1.]]]]])\n"
     ]
    }
   ],
   "source": [
    "# Let us define the motion detection kernel\n",
    "smoothing_2d_kernel = torch.tensor([[1, 1, 1], [1, 1, 1], [1, 1, 1]], dtype=torch.float32).unsqueeze(0)\n",
    "kernel = torch.cat([-smoothing_2d_kernel, smoothing_2d_kernel])\n",
    "# Conv 2D kernels need to be of shape (out_channel, in_channel, k_t, k_x, k_y). Since we are defining a single kernel\n",
    "# out_channel = in_channel = 1. So we unsqueeze to add those extra dimensions\n",
    "kernel = kernel.unsqueeze(0).unsqueeze(0) \n",
    "weight = nn.Parameter(data=kernel, requires_grad=False)\n",
    "print(f\"Kernel shape {kernel.shape}\\nKernel: {kernel}\")  # 1x1x3x3\n",
    "weight = nn.Parameter(data=kernel, requires_grad=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "db2867cb",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Let us convolve the motion detection kernel over the input image. \n",
    "# This can be done in 2 ways. \n",
    "# Using conv3d function\n",
    "out_tensor_1 = F.conv3d(img_batch, weight, padding=0)\n",
    "\n",
    "# Using conv3d layer\n",
    "# Conv3D layer\n",
    "conv3d = nn.Conv3d(1, 1, kernel_size=[2, 3, 3], stride=1, padding=0, bias=False)\n",
    "conv3d.weight = weight\n",
    "with torch.no_grad():\n",
    "    out_tensor_2 = conv3d(img_batch)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "9e0e7d8b",
   "metadata": {},
   "outputs": [],
   "source": [
    "assert torch.allclose(out_tensor_1, out_tensor_2)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "815e5a11",
   "metadata": {},
   "source": [
    "In the images displayed below, gray represents regions of no motion. Black and white represent regions of motion"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "96ec19ad",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "for i, img_tensor in enumerate(out_tensor_1[0][0]):\n",
    "    img = tensor_to_img(img_tensor)\n",
    "    fig = plt.figure() \n",
    "    fig.suptitle(f\"Output: T={i}\")\n",
    "    plt.imshow(img.astype(np.float32) / 255.0, cmap=\"gray\")\n",
    "    plt.xticks([])\n",
    "    plt.yticks([])"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
